JavaJavaIO_开篇[Java]
JayfarIO_开篇
流:流动,流向,从一端移动到另一端。流是一个抽象,动态的概念,是一连串连续动态的数据集合。
数据源: data source。提供原始数据的原始媒介,常见的:数据库,文件,其他程序,内存,网络连接,IO设备。
- 在Java程序中,对于数据的输入/输出操作以“流”(stream)方式进行;
- J2SDK提供了各种各样的“流”类,用以获取不同种类的数据:程序中通过标准的方法输入或输出数据。
- Java的流类型一般位于Java.io包中。
在整个java.io包中最重要的就是5个类和3个接口,掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识。
类 |
说明 |
File |
文件类 |
InputStream |
字节输入流 |
OutputStream |
字节输出流 |
Reader |
字符输入流 |
Writer |
字符输出流 |
Closeable |
关闭流接口 |
Flushable |
刷新流接口 |
Serializabe |
序列化接口 |



IO_File_API使用规则_重要
1 2 3 4 5 6 7 8 9 10
| public static void main(String[] args) { String path = "E:\\JAVA\\cn.shangxuetang\\image\\2.jpg"; System.out.println(java.io.File.separatorChar); path = "E:/JAVA/cn.shangxuetang/image/2.jpg";
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| package cn.io;
import java.io.File; public class FileDemo01 {
public static void main(String[] args) { String path = "E:/JAVA/cn.shangxuetang/image/2.jpg"; File src = new File(path); System.out.println(src.length()); src = new File("E:/JAVA/cn.shangxuetang/image","2.jpg"); System.out.println(src.length()); src = new File(new File("E:/JAVA/cn.shangxuetang/image"),"2.jpg"); System.out.println(src.length()); File src1 = new File(path); System.out.println(src1.getAbsolutePath()); System.out.println(System.getProperty("user.dir")); src1 = new File(package cn.io;
import java.io.File; public class FileDemo01 {
public static void main(String[] args) { String path = "E:/JAVA/cn.shangxuetang/image/2.jpg"; File src = new File(path); System.out.println(src.length()); src = new File("E:/JAVA/cn.shangxuetang/image","2.jpg"); System.out.println(src.length()); src = new File(new File("E:/JAVA/cn.shangxuetang/image"),"2.jpg"); System.out.println(src.length()); File src1 = new File(path); System.out.println(src1.getAbsolutePath()); System.out.println(System.getProperty("user.dir")); src1 = new File("IO.png"); System.out.println(src1.getAbsolutePath()); } }
|
IO_File_API学习

1 2 3 4 5 6 7 8 9
| File src = new File("E:/JAVA/cn.shangxuetang/image/2.jpg"); System.out.println("名称 :" + src.getName() ); System.out.println("路径 : " + src.getPath()); System.out.println("绝对路径 : " + src.getAbsolutePath()); System.out.println("父路径 : " + src.getParent()); System.out.println( File src = new File("E:/JAVA/cn.shangxuetang/image/2.jpg"); System.out.println("名称 :" + src.getName() ); System.out.println("路径 : " + src.getPath()); System.out.println("绝对路径 : " + src.getAbsolutePath()); System.out.println("父路径 : " + src.getParent()); System.out.println("父对象:" + src.getParentFile().getName());
|
文件状态
不存在
存在
文件:isFile
文件夹:isDirectory
1 2 3 4 5 6
| File src = new File("E:/JAVA/cn.shangxuetang/image/2.jpg"); System.out.println("是否存在 :" + src.exists() ); System.out.println("是否文件 : " + src.isFile()); System.out.println(File src = new File("E:/JAVA/cn.shangxuetang/image/2.jpg"); System.out.println("是否存在 :" + src.exists() ); System.out.println("是否文件 : " + src.isFile()); System.out.println("是否文件夹 : " + src.isDirectory());
|
文件夹的创建
API |
说明 |
mkdir() , mkdirs() |
创建目录,如果目录链不存在一同创建 |
list() |
下级名称 |
listFiles() |
下级File |
listRoots() |
根路径 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| package cn.io; import java.io.File;
public class Dir {
public static void main(String[] args) { File dir = new File("E:/JAVA/cn.shangxuetang"); boolean flag = dir.mkdir(); System.out.println(flag); String[] subNames = dir.list(); for (String s : subNames) { System.out.println(s); } System.out.println("==================================="); File[] subFiles = dir.listFiles(); for (File file : subFiles) { System.out.println(file); } System.out.println("==================================="); File[] roots = dir.listRoots(); package cn.io; import java.io.File;
public class Dir {
public static void main(String[] args) { File dir = new File("E:/JAVA/cn.shangxuetang"); boolean flag = dir.mkdir(); System.out.println(flag); String[] subNames = dir.list(); for (String s : subNames) { System.out.println(s); } System.out.println("==================================="); File[] subFiles = dir.listFiles(); for (File file : subFiles) { System.out.println(file); } System.out.println("==================================="); File[] roots = dir.listRoots(); for (File file : roots) { System.out.println(file); } }
}
|
递归:方法自己调用自己
递归头:何时结束递归
递归体:重复调用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package cn.io;
public class DirDemo {
public static void main(String[] args) { printTen(1); } public static void printTen(int n) { if (n > 10) { return ; } System.out.println(n); printTen(n+1); |
打印子孙级目录和文件的名称
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| package cn.io;
import java.io.File;
public class DirDemo01 {
public static void main(String[] args) { File src = new File("E:\\JAVA\\cn.shangxuetang\\src\\cn\\io"); printName(src,0); }
public static void printName(File src,int deep) { for(int i = 0 ; i < deep ; i ++) { System.out.print("-"); } System.out.println(src.getName()); if (null == src || !src.exists()) { return ; }else if (src.isDirectory()) { for(File sFile:src.listFiles()) { printName(sFile,deep + package cn.io;
import java.io.File;
public class DirDemo01 {
public static void main(String[] args) { File src = new File("E:\\JAVA\\cn.shangxuetang\\src\\cn\\io"); printName(src,0); }
public static void printName(File src,int deep) { for(int i = 0 ; i < deep ; i ++) { System.out.print("-"); } System.out.println(src.getName()); if (null == src || !src.exists()) { return ; }else if (src.isDirectory()) { for(File sFile:src.listFiles()) { printName(sFile,deep + 1); } } } }
|